/*=========================================================================
Elite College as Engines of Upward Mobility: Evidence from Colombia's Ser Pilo Paga
Authors: Juliana Londoño-Vélez, Catherine Rodriguez, Fabio Sánchez
and Luis Esteban Álvarez-Arango

Creation date: June 6th, 2025
--------------------------------------------------------------------------
Master.do
=========================================================================*/    

use "${data}/data_RD", clear
keep if icfes_per==20142
replace codigo_ies=. if access_6==0
replace codigo_programa=. if access_6==0
replace codigo_ies=0 if codigo_ies==.
replace codigo_programa=0 if codigo_programa==.
gen categoria=""
replace categoria="hq_pri" if hq_pri==1
replace categoria="hq_pub" if hq_pub==1
replace categoria="lq_pri" if lq_pri==1
replace categoria="lq_pub" if lq_pub==1
gen p=1
gegen estudiantes_prog=total(access_6), by(codigo_programa)
ereplace estudiantes_prog=total(p) if codigo_programa==0, by(codigo_programa)
rename codigo_programa codigo_prog
drop if graduation_exam_7==1 & access_6==0
replace graduation_exam_7=. if access_6==0
replace graduation_exam_7=. if codigo_ies==0 | codigo_prog==0
replace graduation_exam_pro_7=. if access_pro_6==0
replace graduation_exam_pro_7=. if codigo_ies==0 | codigo_prog==0
replace score_saberpro_5=. if access_pro_6==0
replace score_saberpro_5=. if codigo_ies==0 | codigo_prog==0

global outcomes graduation_exam_7 graduation_exam_pro_7 score_saberpro_5 work_9 mw_9
merge m:1 codigo_prog using "${Intermediate}/va_prog", nogen keep(3)

foreach x of global outcomes{
	foreach y of varlist `x'_*_va{
		replace `y'=. if  `x'==.
	}
}

local NO: word count of $outcomes
local NO=(`NO'-1)*8
matrix rh2014=J(`NO',34,.)

local i=1
foreach o of global outcomes{
	foreach r in saber11 sisben{
		if "`r'"=="saber11" local j=0
		if "`r'"=="sisben" 	local j=17
		rdrobust `o' running_`r' if ${cond_`r'}, masspoints(off)
		global bw_`r' `e(h_r)'
		global br_`r' `e(b_r)'
		matrix rh2014[`i',`=`j'+1']=e(tau_cl)
		matrix rh2014[`i',`=`j'+2']=e(tau_bc)
		matrix rh2014[`i',`=`j'+3']=e(se_tau_cl)
		matrix rh2014[`i',`=`j'+4']=e(se_tau_rb)
		matrix rh2014[`i',`=`j'+5']=e(ci_r_rb)
		matrix rh2014[`i',`=`j'+6']=e(ci_l_rb)
		matrix rh2014[`i',`=`j'+7']=e(tau_cl_l)
		matrix rh2014[`i',`=`j'+8']=e(tau_bc_l)
		matrix rh2014[`i',`=`j'+9']=e(pv_cl)
		matrix rh2014[`i',`=`j'+10']=e(pv_rb)
		matrix rh2014[`i',`=`j'+11']=e(h_l)
		matrix rh2014[`i',`=`j'+12']=e(b_l)
		matrix rh2014[`i',`=`j'+13']=e(N_h_l)
		matrix rh2014[`i',`=`j'+14']=e(N_h_r)
		matrix rh2014[`i',`=`j'+15']=e(N_b_l)
		matrix rh2014[`i',`=`j'+16']=e(N_b_r)
		matrix rh2014[`i',`=`j'+17']=e(N)
	}	

	local i=1+`i'
	foreach w in c_va {
		foreach r in saber11 sisben{
			if "`r'"=="saber11" local j=0
			if "`r'"=="sisben" 	local j=17

			rdrobust `o'_`w' running_`r' if ${cond_`r'}, masspoints(off) h(${bw_`r'}) b(${br_`r'})
			if _rc==0{
				matrix rh2014[`i',`=`j'+1']=e(tau_cl)
				matrix rh2014[`i',`=`j'+2']=e(tau_bc)
				matrix rh2014[`i',`=`j'+3']=e(se_tau_cl)
				matrix rh2014[`i',`=`j'+4']=e(se_tau_rb)
				matrix rh2014[`i',`=`j'+5']=e(ci_r_rb)
				matrix rh2014[`i',`=`j'+6']=e(ci_l_rb)
				matrix rh2014[`i',`=`j'+7']=e(tau_cl_l)
				matrix rh2014[`i',`=`j'+8']=e(tau_bc_l)
				matrix rh2014[`i',`=`j'+9']=e(pv_cl)
				matrix rh2014[`i',`=`j'+10']=e(pv_rb)
				matrix rh2014[`i',`=`j'+11']=e(h_l)
				matrix rh2014[`i',`=`j'+12']=e(b_l)
				matrix rh2014[`i',`=`j'+13']=e(N_h_l)
				matrix rh2014[`i',`=`j'+14']=e(N_h_r)
				matrix rh2014[`i',`=`j'+15']=e(N_b_l)
				matrix rh2014[`i',`=`j'+16']=e(N_b_r)
				matrix rh2014[`i',`=`j'+17']=e(N)
			}
		}
	local i=1+`i'
	}
}

*******
clear
svmat rh2014
gen nombre=""
global nombres 
foreach x of global outcomes{
	global nombres ${nombres} `x'
	foreach w in c_va{
		global nombres ${nombres} `x'_`w'
	}
}

local NO: word count of $nombres
local NO=`NO'-1
forvalues i=1/`NO'{
	local nn: word `i' of ${nombres}
	replace nombre="`nn'" in `i'
}
order nombre
local nombres cc cr sec ser cs ci cc0 cr0 pc pr bwc bwr nec0 nec ner0 ner n
local nn: word count of `nombres'
local nn=`nn'-1
forvalues j=1/`nn'{
	local rn: word `j' of `nombres'
	rename rh2014`j' `rn'_11
	rename rh2014`=`j'+`nn'' `rn'_si
}

local runn 11 si
foreach x of local runn{
	label var cc_`x' "Coeficiente convencional"
	label var cr_`x' "Coeficiente robusto"
	label var sec_`x' "Error estándar convencional"
	label var ser_`x' "Error estándar robusto"
	label var cs_`x' "Intervalo superior robusto"
	label var ci_`x' "Intervalo inferior robusto"
	label var cc0_`x' "Media control convencional"
	label var cr0_`x' "Media control robusto"
	label var pc_`x' "Valor P convencional"
	label var pr_`x' "Valor P robusto"
	label var bwc_`x' "BW convencional"
	label var bwr_`x' "BW robusto"
	label var nec0_`x' "Observaciones efectivas izquierda convencional"
	label var nec_`x' "Observaciones efectivas derecha convencional"
	label var ner0_`x' "Observaciones efectivas izquierda robustas"
	label var ner_`x' "Observaciones efectivas derecha robustas"
	label var n_`x' "Observaciones"
}
drop if nombre==""
save "${Intermediate}/Tab_5", replace
